#ifndef I_EVENT_CALLBACK_H
#define I_EVENT_CALLBACK_H

#include "INonCopyable.h"
using Util::INonCopyable;

namespace Net{

    //事件回调接口
    class IEventCallback : public INonCopyable
    {
        public:
            IEventCallback();
            virtual ~IEventCallback();

        public:
            //事件注册回调
            virtual int OnRegisteration();
            //事件取消注册回调
            virtual int OnUnregistration();
            //事件触发回调
            virtual int OnEvent();
            //事件关闭回调
            virtual int OnShutdown();
    };    

    inline IEventCallback::IEventCallback()
    {
    }

    inline IEventCallback::~IEventCallback()
    {
    }


    inline int IEventCallback::OnRegisteration()
    {
        return 0;
    }

    inline int IEventCallback::OnUnregistration()
    {
        return 0;
    }

    inline int IEventCallback::OnEvent()
    {
        return 0;
    }

    inline int IEventCallback::OnShutdown()
    {
        return 0;
    }
}
#endif
